home *** CD-ROM | disk | FTP | other *** search
/ SGI ONC3 NFS v2 / SGI ONC3 NFS v2.iso / dist6.4 / nfs.idb / var / yp / ypxfr_1pd.z / ypxfr_1pd
Text File  |  1997-02-07  |  1KB  |  59 lines

  1. #! /bin/sh
  2. #
  3. # @(#)ypxfr_1perday.sh 1.1 86/02/05 Copyr 1985 Sun Microsystems, Inc.  
  4. # @(#)ypxfr_1perday.sh    2.1 86/04/16 NFSSRC
  5. #
  6. # ypxfr_1perday.sh - Do daily NIS map check/updates
  7. #
  8.  
  9. USAGE="$0: [-vf] [-h host] [c]"
  10.  
  11. while getopts "vfh:c" c; do
  12.     case $c in
  13.     v)
  14.     if test "$verbose" = "-v"; then
  15.         set -v
  16.     fi
  17.     set -x
  18.     verbose="-v"
  19.     ;;
  20.     f) ARGS="$ARGS -f";;
  21.     h) ARGS="$ARGS -h $OPTARG";;
  22.     c) ARGS="$ARGS -c";;
  23.     \?) echo $USAGE; exit 1;;
  24.     esac
  25. done
  26. shift `expr $OPTIND - 1`
  27. if test "$#" != 0; then
  28.     echo $USAGE
  29.     exit 1
  30. fi
  31.  
  32. if /sbin/chkconfig ypmaster; then
  33.     exit
  34. fi
  35. if /sbin/chkconfig yp && /sbin/chkconfig ypserv; then :
  36. else
  37.     exit
  38. fi
  39.  
  40. # The following sleep command is used to stagger NIS servers' ypxfr requests. 
  41. # TXTM must be greater than the time in seconds required to transfer all
  42. # of the databases to a single machine.
  43. # Note that 60*60*24=0x15180=seconds/day.
  44.  
  45. NSVR=`ypcat -k ypservers |wc -l`
  46. TXTM='5*8'            # 8 databases * 5 seconds/database
  47.  
  48. sleep `(echo ibase=16; hostid | sed -e 's/0x//' -e 'y/abcdef/ABCDEF/' \\
  49.        -e "s/.*/((& % ($NSVR+1))*$TXTM % 15180)/") | bc 2>/dev/null`
  50.  
  51. /usr/sbin/ypxfr $ARGS group.byname
  52. /usr/sbin/ypxfr $ARGS group.bygid 
  53. /usr/sbin/ypxfr $ARGS protocols.byname
  54. /usr/sbin/ypxfr $ARGS protocols.bynumber
  55. /usr/sbin/ypxfr $ARGS networks.byname
  56. /usr/sbin/ypxfr $ARGS networks.byaddr
  57. /usr/sbin/ypxfr $ARGS services.byname
  58. /usr/sbin/ypxfr $ARGS ypservers
  59.